package com.example.dine.call.entity;

import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * 表示一个排队对象，用于描述顾客排队的基本信息和状态。
 * 实现了Serializable接口以支持对象序列化。
 */
@Data
public class Queue implements Serializable {

    /**
     * 排队记录的唯一标识符。
     */
    private Long id;

    /**
     * 就餐人数。
     */
    private Integer partySize;

    /**
     * 餐桌类型代码。
     */
    private String typeCode;

    /**
     * 排队序号。
     */
    private Integer queueNumber;

    /**
     * 排队状态，0=等待中，1=已叫号。
     */
    private Integer status;

    /**
     * 创建时间。
     */
    private LocalDateTime createdAt;

    /**
     * 排队状态的文本描述。
     */
    public static final String[] STATUS_TEXT = {"等待中", "已叫号"};

    /**
     * 返回排队信息的字符串表示。
     *
     * @return 排队信息的字符串表示。
     */
    public String showInfo() {
        return "排队号：" + typeCode + queueNumber + "，就餐人数：" + partySize + "，状态：" + Queue.STATUS_TEXT[status] + "，排号时间：" + createdAt;
    }

}